# 在简易装饰器的基础上
# 解决给index函数,home函数传参的问题
# 以及获取index函数,home函数返回值的问题
# 给函数添加时间统计功能
import time


def index(name):
    time.sleep(2)
    print('from index')
    return "return from index"


def home(name, passwd):
    time.sleep(2)
    print('from home')
    return "return from home"


def outer(func):
    # 通过*args, **kwargs可变参数解决给index函数,home函数等不同函数的传参的问题
    def get_time(*args, **kwargs):
        # 开始时间
        start_time = time.time()
        # 执行函数
        res = func(*args, **kwargs)
        # 结束时间
        end_time = time.time()
        # 打印时间
        print("函数执行时间为 %s 秒" % (end_time - start_time))
        # 将函数执行的返回值返回给内层函数，解决获取index函数,home函数返回值的问题
        return res

    return get_time


# 使用函数名相同的变量名，实现伪装
index = outer(index)
print(index('tony'))
res_home = outer(home)
print(home('jack', '123'))
